package collection;

import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

/**
 *
 */
@Slf4j
public class ListTest {
    @Test
    public void sort() {
        List<Integer> list = new ArrayList<>();
        list.add(2);
        list.add(1);
        list.add(6);
        list.add(4);
//        list.sort(Integer::compareTo);
//        log.info("list:{}", list);
        list.sort(Comparator.reverseOrder());
        log.info("list:{}", list);
    }

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.forEach(System.out::println);

//        list.clear();
//        list.forEach(System.out::println);

//        list.add(4);
        list.forEach(System.out::println);

        //UnsupportedOperationException
//        List<String> empty = Collections.EMPTY_LIST;
//        empty.add("1");

        List<Integer> list2 = new ArrayList<>();
        list2.add(1);
        list2.add(3);
        list2.add(2);

        System.out.println(list.containsAll(list2));    //true

        List<String> list3 = new ArrayList<>();
        list3.add("a");
        list3.add("b");
        list3.add("c");
        list3.add("d");

        List<String> list4 = new ArrayList<>();
        list4.add("a");
        list4.add("c");
        list4.add("b");
        System.out.println(list3.containsAll(list4));   //true
        System.out.println(list4.containsAll(list3));   //false

        List<String> list5 = new ArrayList<>(list4);
        System.out.println(list5);
        System.out.println(list5.toString());
        List<String> list6 = new ArrayList<>(null); //NullPointerException
    }
}
